package com.yuyou.fn.activity.vo;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
import com.github.wens.mybatisplus.annotations.TableField;
import com.yuyou.fn.common.condition.annotation.Ignore;
import io.swagger.annotations.ApiModelProperty;

import javax.validation.constraints.Max;
import javax.validation.constraints.NotEmpty;
import javax.validation.constraints.NotNull;
import javax.validation.constraints.Size;
import java.util.Date;
import java.util.List;

/**
 * Created by lzh on 2019/5/22.
 */
@JsonIgnoreProperties(ignoreUnknown = true)
public class ActivitySaveUpdateVo {
    @ApiModelProperty("唯一标识，有值为更新操作，无值为新增")
    private Long activityId;

    /**  */
    @NotNull
    private Long areaTeamId;

    /** 来源大类 */
    @NotNull
    @TableField(value = "parent_from_category_id")
    @ApiModelProperty("来源大类")
    private Long parentFromCategoryId;

    /** 来源小类 */
    @NotNull
    @TableField(value = "child_from_category_id")
    @ApiModelProperty("来源小类")
    private Long childFromCategoryId;

    /** 活动名称 */
    @ApiModelProperty("活动名称")
    @Size(min = 1,max = 50)
    private String activityName;

    /** 活动详情 */
    @ApiModelProperty("活动详情")
    private String activityContent;

    @ApiModelProperty("活动开始时间,格式yyyy-MM-dd")
    @NotNull
    @JsonFormat(pattern = "yyyy-MM-dd",timezone="GMT+8")
    private Date activityStartDate;

    /** 活动最大报名数 */
    @ApiModelProperty("活动最大报名数")
    @NotNull
    private Integer maxRegNum;

    /** 报名成功后提示语 */
    @ApiModelProperty("报名成功后提示语")
    @NotEmpty
    private String successMsg;

    /** 成功后跳转链接 */
    @ApiModelProperty("成功后跳转链接")
    private String successUrl;

    /** 上架状态， 0:下架，1上架。 */
    @ApiModelProperty("上架状态， 0:下架，1上架。")
    @NotNull
    private Integer shelvesStatus;

    /** banner图地址 */
    @ApiModelProperty("banner图地址")
    @NotEmpty
    private String bannerUrl;

    /** 展示的json字段 */
    @ApiModelProperty("前端展示字段")
    private List<InputVo> fields;

    /** 关联期数 */
    @ApiModelProperty("期数")
    @NotNull
    private Long periodId;

    public Long getActivityId() {
        return activityId;
    }

    public void setActivityId(Long activityId) {
        this.activityId = activityId;
    }

    public Long getAreaTeamId() {
        return areaTeamId;
    }

    public void setAreaTeamId(Long areaTeamId) {
        this.areaTeamId = areaTeamId;
    }

    public String getActivityName() {
        return activityName;
    }

    public void setActivityName(String activityName) {
        this.activityName = activityName;
    }

    public String getActivityContent() {
        return activityContent;
    }

    public void setActivityContent(String activityContent) {
        this.activityContent = activityContent;
    }

    public Date getActivityStartDate() {
        return activityStartDate;
    }

    public void setActivityStartDate(Date activityStartDate) {
        this.activityStartDate = activityStartDate;
    }

    public Integer getMaxRegNum() {
        return maxRegNum;
    }

    public void setMaxRegNum(Integer maxRegNum) {
        this.maxRegNum = maxRegNum;
    }

    public String getSuccessMsg() {
        return successMsg;
    }

    public void setSuccessMsg(String successMsg) {
        this.successMsg = successMsg;
    }

    public String getSuccessUrl() {
        return successUrl;
    }

    public void setSuccessUrl(String successUrl) {
        this.successUrl = successUrl;
    }

    public Integer getShelvesStatus() {
        return shelvesStatus;
    }

    public void setShelvesStatus(Integer shelvesStatus) {
        this.shelvesStatus = shelvesStatus;
    }

    public String getBannerUrl() {
        return bannerUrl;
    }

    public void setBannerUrl(String bannerUrl) {
        this.bannerUrl = bannerUrl;
    }


    public Long getPeriodId() {
        return periodId;
    }

    public void setPeriodId(Long periodId) {
        this.periodId = periodId;
    }

    public List<InputVo> getFields() {
        return fields;
    }

    public void setFields(List<InputVo> fields) {
        this.fields = fields;
    }

    public Long getParentFromCategoryId() {
        return parentFromCategoryId;
    }

    public void setParentFromCategoryId(Long parentFromCategoryId) {
        this.parentFromCategoryId = parentFromCategoryId;
    }

    public Long getChildFromCategoryId() {
        return childFromCategoryId;
    }

    public void setChildFromCategoryId(Long childFromCategoryId) {
        this.childFromCategoryId = childFromCategoryId;
    }
}
